// 入口文件
import Vue from 'vue'

import app from './App.vue'

import VueRouter from 'vue-router'  //引入路由模块
Vue.use(VueRouter)                 //使用路由
import router from './router.js'    //引入路由文件


import Vuex from 'vuex'
Vue.use(Vuex)


var car = JSON.parse(localStorage.getItem('car')||'[]')

var store = new Vuex.Store({
    state:{
        car:car
    },
    mutations:{
        addToCar(state,goodsinfo){

            var flag = false

            state.car.some(item=>{
                if(item.id==goodsinfo.id){
                    item.count += parseInt(goodsinfo.count)
                    flag=true
                    return true
                }
            })

            if(flag==false){
                state.car.push(goodsinfo)
            }

            localStorage.setItem('car',JSON.stringify(state.car))
            // console.log(state.car)
        },
        updateGoodsInfo(state, goodsinfo) {
            // 修改购物车中商品的数量值
            // 分析： 
            state.car.some(item => {
              if (item.id == goodsinfo.id) {
                item.count = parseInt(goodsinfo.count)
                return true
              }
            })
            // 当修改完商品的数量，把最新的购物车数据，保存到 本地存储中
            localStorage.setItem('car', JSON.stringify(state.car))
        },
        removeFormCar(state,id){
            state.car.some((item,i)=>{
                if(item.id==id){
                    state.car.splice(i,1)
                    return true
                }
            })
            localStorage.setItem('car', JSON.stringify(state.car))
        },
        updateGoodsSelect(state,info){
            state.car.some(item=>{
                if(item.id==info.id){
                    item.selected = info.selected
                }
                localStorage.setItem('car', JSON.stringify(state.car))
            })
        }
    },
    getters:{
        getAllCount(state){
            var c=0;
            state.car.forEach(item=>{
                c+=item.count
            })
            return c
        },
        getGoodsCount(state){
            var o = {}
            state.car.forEach(item=>{
                o[item.id]=item.count
            })
            return o
        },
        getGoodsSelect(state){
            var o = {}
            state.car.forEach(item=>{
                o[item.id] = item.selected
            })
            return o
        },
        getGoodsTotal(state){
            var o = {
                count : 0,
                Total : 0
            }
            state.car.forEach(item=>{
                if(item.selected){
                    o.count += item.count
                    o.Total += item.count * item.price
                }
            })
            return o
        }
    }
})



//换成全局引入
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
Vue.use(MintUI)



import './lib/mui/css/mui.min.css'   //引入mui的css文件
import './lib/mui/css/icons-extra.css' //引入mui的css扩展图标文件

import VueResource from 'vue-resource'  //引入resource
Vue.use(VueResource)                    //使用resource

Vue.http.options.root = 'http://www.liulongbin.top:3005' //设置请求根路径
Vue.http.options.emulateJSON = true             //全局设置post表单数据格式的的组织形式

// Vue.use(Lazyload)//懒加载

import VuePreview from 'vue-preview'
Vue.use(VuePreview)



import moment from 'moment'   //引入moment时间戳
Vue.filter("time",function(datastr){  //用moment过滤事件格式（看文档）
    return moment(datastr).format("YYYY-MM-DD")
})





var vm = new Vue({
    el:'#app',
    render:c => c(app),
    router,
    store
})